package format.ttf;
/*
class TableId
{
	public static inline function BASE () return Int32.ofInt(0x42415345) // Baseline data [OpenType]
	public static inline function CFF  () return Int32.ofInt(0x43464620) // PostScript font program (compact font format) [PostScript]
	public static inline function DSIG () return Int32.ofInt(0x44534947) // Digital signature
	public static inline function EBDT () return Int32.ofInt(0x45424454) // Embedded bitmap data
	public static inline function EBLC () return Int32.ofInt(0x45424c43) // Embedded bitmap location data
	public static inline function EBSC () return Int32.ofInt(0x45425343) // Embedded bitmap scaling data
	public static inline function GDEF () return Int32.ofInt(0x47444546) // Glyph definition data [OpenType]
	public static inline function GPOS () return Int32.ofInt(0x47504f53) // Glyph positioning data [OpenType]
	public static inline function GSUB () return Int32.ofInt(0x47535542) // Glyph substitution data [OpenType]
	public static inline function JSTF () return Int32.ofInt(0x4a535446) // Justification data [OpenType]
	public static inline function LTSH () return Int32.ofInt(0x4c545348) // Linear threshold table
	public static inline function MMFX () return Int32.ofInt(0x4d4d4658) // Multiple master font metrics [PostScript]
	public static inline function MMSD () return Int32.ofInt(0x4d4d5344) // Multiple master supplementary data [PostScript]
	public static inline function OS_2 () return Int32.ofInt(0x4f532f32) // OS/2 and Windows specific metrics [r]
	public static inline function PCLT () return Int32.ofInt(0x50434c54) // PCL5
	public static inline function VDMX () return Int32.ofInt(0x56444d58) // Vertical Device Metrics table
	public static inline function cmap () return Int32.ofInt(0x636d6170) // character to glyph mapping [r]
	public static inline function cvt  () return Int32.ofInt(0x63767420) // Control Value Table
	public static inline function fpgm () return Int32.ofInt(0x6670676d) // font program
	public static inline function fvar () return Int32.ofInt(0x66766172) // Apple's font variations table [PostScript]
	public static inline function gasp () return Int32.ofInt(0x67617370) // grid-fitting and scan conversion procedure (grayscale)
	public static inline function glyf () return Int32.ofInt(0x676c7966) // glyph data [r]
	public static inline function hdmx () return Int32.ofInt(0x68646d78) // horizontal device metrics
	public static inline function head () return Int32.ofInt(0x68656164) // font header [r]
	public static inline function hhea () return Int32.ofInt(0x68686561) // horizontal header [r]
	public static inline function hmtx () return Int32.ofInt(0x686d7478) // horizontal metrics [r]
	public static inline function kern () return Int32.ofInt(0x6b65726e) // kerning
	public static inline function loca () return Int32.ofInt(0x6c6f6361) // index to location [r]
	public static inline function maxp () return Int32.ofInt(0x6d617870) // maximum profile [r]
	public static inline function _name () return Int32.ofInt(0x6e616d65) // naming table [r] 
	public static inline function prep () return Int32.ofInt(0x70726570) // CVT Program
	public static inline function post () return Int32.ofInt(0x706f7374) // PostScript information [r]
	public static inline function vhea () return Int32.ofInt(0x76686561) // Vertical Metrics header
	public static inline function vmtx () return Int32.ofInt(0x766d7478) // Vertical Metrics		
}
*/
class CFlag
{
		public static inline var ARG_1_AND_2_ARE_WORDS = 0x0001;
		public static inline var ARGS_ARE_XY_VALUES = 0x0002;
		public static inline var ROUND_XY_TO_GRID = 0x0004;
		public static inline var WE_HAVE_A_SCALE = 0x0008;
		public static inline var MORE_COMPONENTS = 0x0020;
		public static inline var WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;
		public static inline var WE_HAVE_A_TWO_BY_TWO = 0x0080;
		public static inline var WE_HAVE_INSTRUCTIONS = 0x0100;
		public static inline var USE_MY_METRICS = 0x0200;
}
/*
class CFlag
{
	inline static var ARG_1_AND_2_ARE_WORDS = 0;	// 	0	If this bit is set, the arguments are words; otherwise, they are bytes.
	inline static var ARGS_ARE_XY_VALUES = 1;		//	1 	If this is set, the arguments are xy values; otherwise, they are points.
	inline static var ROUND_XY_TO_GRID = 2;			//	2 	For the xy values if the preceding is true.
	inline static var WE_HAVE_A_SCALE = 3;			//	3 	This indicates that there is a simple scale for the component. Otherwise, scale = 1.0.
	inline static var RESERVED = 4;					// 	4 	This bit is reserved. Set it to 0.
	inline static var MORE_COMPONENTS = 5;			// 	5 	Indicates at least one more glyph after this one.
	inline static var WE_HAVE_AN_X_AND_Y_SCALE = 6;//	6 	The x direction will use a different scale from the y direction.
	inline static var WE_HAVE_A_TWO_BY_TWO = 7;		// 	7 	There is a 2 by 2 transformation that will be used to scale the component.
	inline static var WE_HAVE_INSTRUCTIONS = 8;	// 	8 	Following the last component are instructions for the composite character.
	inline static var USE_MY_METRICS = 9;			// 	9 	If set, this forces the aw and lsb (and rsb) for the composite to be equal to those from this original glyph. This works for hinted and unhinted characters.
	inline static var OVERLAP_COMPOUND = 10;		// 	10 	Used by Apple in GX fonts.
	inline static var SCALED_COMPONENT_OFFSET = 11;//	11 	Composite designed to have the component offset scaled (designed for Apple rasterizer).
	inline static var UNSCALED_COMPONENT_OFFSET = 12;//12 Composite designed not to have the component offset scaled (designed for the Microsoft TrueType rasterizer).
}
*/
class MacGlyphNames
{
	public static inline function names():Array<String> return 
	[
	        ".notdef",      // 0
	        "null",         // 1
	        "CR",           // 2
	        "space",        // 3
	        "exclam",       // 4
	        "quotedbl",     // 5
	        "numbersign",   // 6
	        "dollar",       // 7
	        "percent",      // 8
	        "ampersand",    // 9
	        "quotesingle",  // 10
	        "parenleft",    // 11
	        "parenright",   // 12
	        "asterisk",     // 13
	        "plus",         // 14
	        "comma",        // 15
	        "hyphen",       // 16
	        "period",       // 17
	        "slash",        // 18
	        "zero",         // 19
	        "one",          // 20
	        "two",          // 21
	        "three",        // 22
	        "four",         // 23
	        "five",         // 24
	        "six",          // 25
	        "seven",        // 26
	        "eight",        // 27
	        "nine",         // 28
	        "colon",        // 29
	        "semicolon",    // 30
	        "less",         // 31
	        "equal",        // 32
	        "greater",      // 33
	        "question",     // 34
	        "at",           // 35
	        "A",            // 36
	        "B",            // 37
	        "C",            // 38
	        "D",            // 39
	        "E",            // 40
	        "F",            // 41
	        "G",            // 42
	        "H",            // 43
	        "I",            // 44
	        "J",            // 45
	        "K",            // 46
	        "L",            // 47
	        "M",            // 48
	        "N",            // 49
	        "O",            // 50
	        "P",            // 51
	        "Q",            // 52
	        "R",            // 53
	        "S",            // 54
	        "T",            // 55
	        "U",            // 56
	        "V",            // 57
	        "W",            // 58
	        "X",            // 59
	        "Y",            // 60
	        "Z",            // 61
	        "bracketleft",  // 62
	        "backslash",    // 63
	        "bracketright", // 64
	        "asciicircum",  // 65
	        "underscore",   // 66
	        "grave",        // 67
	        "a",            // 68
	        "b",            // 69
	        "c",            // 70
	        "d",            // 71
	        "e",            // 72
	        "f",            // 73
	        "g",            // 74
	        "h",            // 75
	        "i",            // 76
	        "j",            // 77
	        "k",            // 78
	        "l",            // 79
	        "m",            // 80
	        "n",            // 81
	        "o",            // 82
	        "p",            // 83
	        "q",            // 84
	        "r",            // 85
	        "s",            // 86
	        "t",            // 87
	        "u",            // 88
	        "v",            // 89
	        "w",            // 90
	        "x",            // 91
	        "y",            // 92
	        "z",            // 93
	        "braceleft",    // 94
	        "bar",          // 95
	        "braceright",   // 96
	        "asciitilde",   // 97
	        "Adieresis",    // 98
	        "Aring",        // 99
	        "Ccedilla",     // 100
	        "Eacute",       // 101
	        "Ntilde",       // 102
	        "Odieresis",    // 103
	        "Udieresis",    // 104
	        "aacute",       // 105
	        "agrave",       // 106
	        "acircumflex",  // 107
	        "adieresis",    // 108
	        "atilde",       // 109
	        "aring",        // 110
	        "ccedilla",     // 111
	        "eacute",       // 112
	        "egrave",       // 113
	        "ecircumflex",  // 114
	        "edieresis",    // 115
	        "iacute",       // 116
	        "igrave",       // 117
	        "icircumflex",  // 118
	        "idieresis",    // 119
	        "ntilde",       // 120
	        "oacute",       // 121
	        "ograve",       // 122
	        "ocircumflex",  // 123
	        "odieresis",    // 124
	        "otilde",       // 125
	        "uacute",       // 126
	        "ugrave",       // 127
	        "ucircumflex",  // 128
	        "udieresis",    // 129
	        "dagger",       // 130
	        "degree",       // 131
	        "cent",         // 132
	        "sterling",     // 133
	        "section",      // 134
	        "bullet",       // 135
	        "paragraph",    // 136
	        "germandbls",   // 137
	        "registered",   // 138
	        "copyright",    // 139
	        "trademark",    // 140
	        "acute",        // 141
	        "dieresis",     // 142
	        "notequal",     // 143
	        "AE",           // 144
	        "Oslash",       // 145
	        "infinity",     // 146
	        "plusminus",    // 147
	        "lessequal",    // 148
	        "greaterequal", // 149
	        "yen",          // 150
			"mu",           // 151
	        "partialdiff",  // 152
	        "summation",    // 153
	        "product",      // 154
			"pi",           // 155
	        "integral'",    // 156
	        "ordfeminine",  // 157
	        "ordmasculine", // 158
			"Omega",        // 159
	        "ae",           // 160
	        "oslash",       // 161
	        "questiondown", // 162
	        "exclamdown",   // 163
	        "logicalnot",   // 164
	        "radical",      // 165
	        "florin",       // 166
	        "approxequal",  // 167
	        "increment",    // 168
	        "guillemotleft",// 169
	        "guillemotright",//170
	        "ellipsis",     // 171
	        "nbspace",      // 172
	        "Agrave",       // 173
	        "Atilde",       // 174
	        "Otilde",       // 175
	        "OE",           // 176
	        "oe",           // 177
	        "endash",       // 178
	        "emdash",       // 179
	        "quotedblleft", // 180
	        "quotedblright",// 181
	        "quoteleft",    // 182
	        "quoteright",   // 183
	        "divide",       // 184
	        "lozenge",      // 185
	        "ydieresis",    // 186
	        "Ydieresis",    // 187
	        "fraction",     // 188
	        "currency",     // 189
	        "guilsinglleft",// 190
	        "guilsinglright",//191
	        "fi",           // 192
	        "fl",           // 193
	        "daggerdbl",    // 194
	        "middot",       // 195
	        "quotesinglbase",//196
	        "quotedblbase", // 197
	        "perthousand",  // 198
	        "Acircumflex",  // 199
	        "Ecircumflex",  // 200
	        "Aacute",       // 201
	        "Edieresis",    // 202
	        "Egrave",       // 203
	        "Iacute",       // 204
	        "Icircumflex",  // 205
	        "Idieresis",    // 206
	        "Igrave",       // 207
	        "Oacute",       // 208
	        "Ocircumflex",  // 209
	        "",             // 210
	        "Ograve",       // 211
	        "Uacute",       // 212
	        "Ucircumflex",  // 213
	        "Ugrave",       // 214
	        "dotlessi",     // 215
	        "circumflex",   // 216
	        "tilde",        // 217
	        "overscore",    // 218
	        "breve",        // 219
	        "dotaccent",    // 220
	        "ring",         // 221
	        "cedilla",      // 222
	        "hungarumlaut", // 223
	        "ogonek",       // 224
	        "caron",        // 225
	        "Lslash",       // 226
	        "lslash",       // 227
	        "Scaron",       // 228
	        "scaron",       // 229
	        "Zcaron",       // 230
	        "zcaron",       // 231
	        "brokenbar",    // 232
	        "Eth",          // 233
	        "eth",          // 234
	        "Yacute",       // 235
	        "yacute",       // 236
	        "Thorn",        // 237
	        "thorn",        // 238
	        "minus",        // 239
	        "multiply",     // 240
	        "onesuperior",  // 241
	        "twosuperior",  // 242
	        "threesuperior",// 243
	        "onehalf",      // 244
	        "onequarter",   // 245
	        "threequarters",// 246
	        "franc",        // 247
	        "Gbreve",       // 248
	        "gbreve",       // 249
	        "Idot",         // 250
	        "Scedilla",     // 251
	        "scedilla",     // 252
	        "Cacute",       // 253
	        "cacute",       // 254
	        "Ccaron",       // 255
	        "ccaron",       // 256
	        ""              // 257
	    ];
}
